热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

面经系列|Python,数据结构,神经网络

本文转自Datawhale,禁二次转载目录人工神经网络中为什么ReLu要好过于tanh和sigmoidfunction?MLE的解是否总是存在,若存在是否唯一?L1用于逻辑回归,C

本文转自Datawhale,禁二次转载


目录

  • 人工神经网络中为什么ReLu要好过于tanh和sigmoid function?

  • MLE的解是否总是存在,若存在是否唯一?

  • L1用于逻辑回归,C 值从 0 增加至非常大会有什么变化?

  • Python

    • 生成器与迭代器的区别

    • 解释在Python中,函数名为什么可当作参数用?

  • 利用分治算法进行归并排序的一般步骤?



人工神经网络中为什么ReLu要好过于tanh和sigmoid function?


首先,sigmoid函数将数值挤压到【0,1】,存在两大不足:

  • 函数饱和使梯度消失。当神经元的**在接近0或1处时会饱和,梯度几乎为0,导致梯度消失,几乎就有没有信号通过神经传回上一层。

  • 输出不是零中心的。如果输入神经元的数据总是正数,那么关于w的梯度在反向传播的过程中,将会要么全部是正数,要么全部是负数,这将会导致梯度下降权重更新时出现z字型的下降

然后,tanh函数将数值挤压到【-1,1】,解决了sigmoid不是以零为中心的问题,但仍然存在饱和问题。

于是,ReLu登场了,相较于sigmoid和tanh函数。ReLu具有单侧抑制、相对宽阔的兴奋边界、稀疏**性等特性,关键Relu在**区域是线性的,极大的提升了收敛效率,也没指数运算,减少了计算量。



MLE的解是否总是存在,若存在是否唯一?

下列关于极大似然估计(Maximum Likelihood Estimate,MLE),说法正确的是(多选)?

A. MLE 可能并不存在

B. MLE 总是存在

C. 如果 MLE 存在,那么它的解可能不是唯一的

D. 如果 MLE 存在,那么它的解一定是唯一的

答案:AC


Datawhale优秀回答者@孙凯[email protected]????


极大似然估计是根据样本数据来求解模型参数,要先写出参数的似然函数,然后对似然函数进行求导,牵扯到求导就要考虑导数不存在的情况,如果似然函数的一阶导不存在,那么MLE就不存在,而且似然函数取得极大值时对应的参数也不唯一举个MLE不唯一的例子:设随机变量为,待估计参数为,假设服从以下分布:,假设随机变量只能够取大于或等于的数值。现在我有n个样本点 ,全部是从总体X中随机抽样的,要用极大似然估计。由于X的分布函数是:,所以密度函数就是这样似然函数就是目标就是要求使得上述函数达到最大值。显然任何一个都可以做到这一点,因为当时,对数里面的数值从大于0的方向趋于0,整个ln是趋于负无穷大,从而目标函数是正无穷大。于是极大似然估计得到的参数估计值就不是唯一的.任何一个样本点的数值都是该参数的极大似然估计值,一般地,只要你的似然函数没有唯一的极值点,极大似然估计就不唯一。



L1用于逻辑回归,C 值从 0 增加至非常大会有什么变化?

你正在使用带有 L1 正则化的 logistic 回归做二分类,其中 C 是正则化参数,w1 和 w2 是 x1 和 x2 的系数。当你把 C 值从 0 增加至非常大的值时,下面哪个选项是正确的?

A 第一个 w2 变成 0,接着 w1 也变成 0

B 第一个 w1 变成 0,接着 w2 也变成 0

C w1 和 w2 同时变成了 0

D 即使 C 变为大值,w1 和 w2 也不能变成 0

面经系列 | Python,数据结构,神经网络

答案:C


Datawhale优秀回答者@野比大雄

面经系列 | Python,数据结构,神经网络


Python

生成器与迭代器的区别


Datawhale优秀回答者@鹏 


1.有iter()和next()魔法方法的对象,都是迭代器(可以为你的类添加迭代器行为);

2.生成器是一个用于创建迭代器的工具,它们的写法类似标准的函数,但当它们要返回数据时会使用yield语句。每次对生成器调用next()时,它会从上次离开位置恢复执行(它会记住上次执行语句时的所有数据值)。

可以用生成器来完成的操作同样可以用基于类的迭代器来完成。但生成器的写法更为紧凑,因为它会自动创建 iter() 和 next() 方法。另一个关键特性在于局部变量和执行状态会在每次调用之间自动保存。这使得该函数相比使用类的实例变量的方式更易编写且更为清晰。除了会自动创建方法和保存程序状态,当生成器终结时,它们还会自动引发 StopIteration。这些特性结合在一起,使得创建迭代器能与编写常规函数一样容易。



Python中,函数名为什么可以当作参数用?(Python函数面试类型)

Datawhale优秀回答者@把栏杆拍遍


python中函数是第一等对象,第一等对象的一般特征:

1.运行时(runtime)创建

2.将变量或者元素赋值在一个数据结构当中

3.可以作为一个参数传递给一个函数

4.可以作为函数的结果返回

Python中对象才是一等公民,一切都是对象,int是对象,函数是对象,class 也是一种对象。

函数是一个对象,跟其它对象一样是最终继承自PyObject,函数可以像任何对象那样进行赋值、传递、名字重绑定、赋值、装进容器、垃圾回收……

顺带一提,函数能作为参数和函数式编程可完全是两码事。Python支持了一些函数式特性,但并不是个以函数为核心的语言,函数也不是一等公民。因为函数式编程并不很Pythonic。



利用分治算法进行归并排序的一般步骤

Datawhale优秀回答者@Dazzle洪荣


分治策略是对大型问题的一种有效的方法,将一些大规模问题转换为一些小规模问题,分而治之,当程序规模扩大时效率将下降,这时候我们可以采取分治的方法。首先分治算法模型有三个基本步骤:

1.分解:将原问题分解成若干个子问题,这些子问题是原问题的规模较小的实例

2.解决:将这些子问题再进一步递归的分解。当若干子问题的规模足够小时,就直接求解

3.合并:将上述子问题的解合并成最终问题的解

任何用分治思想实现的各种算法都可以用上面3步分解出来看。以归并排序看一下,结合上面3步,归并排序分成3步:

1.分解:将n元素的数组分成n/2个元素的两个子序列

2.解决:将这些子序列再分解成更小规模的序列,递归地排序两个子序列

3.合并:合并这两个已排好序的子序列生成最终答案。


推荐阅读:

数据结构之动态规划问题


面经系列 | Python,数据结构,神经网络


推荐阅读
  • 深入浅出TensorFlow数据读写机制
    本文详细介绍TensorFlow中的数据读写操作,包括TFRecord文件的创建与读取,以及数据集(dataset)的相关概念和使用方法。 ... [详细]
  • 本文详细介绍了Java中的注解功能,包括如何定义注解类型、设置注解的应用范围及生命周期,并通过具体示例展示了如何利用反射机制访问注解信息。 ... [详细]
  • 本文详细介绍了Java集合框架中的Collection体系,包括集合的基本概念及其与数组的区别。同时,深入探讨了Comparable和Comparator接口的区别,并分析了各种集合类的底层数据结构。最后,提供了如何根据需求选择合适的集合类的指导。 ... [详细]
  • 本文详细介绍了 Python 中的 with 语句及其背后的上下文管理器机制,从基本概念入手,通过具体示例和原理分析,帮助读者深入理解这一重要的资源管理工具。 ... [详细]
  • Lua编程进阶:数组与迭代器详解
    本文深入探讨了Lua语言中的数组和迭代器,通过实例讲解了一维数组、多维数组的使用方法及迭代器的工作原理。 ... [详细]
  • 本文档旨在帮助开发者回顾游戏开发中的人工智能技术,涵盖移动算法、群聚行为、路径规划、脚本AI、有限状态机、模糊逻辑、规则式AI、概率论与贝叶斯技术、神经网络及遗传算法等内容。 ... [详细]
  • 在Ubuntu 16.04中使用Anaconda安装TensorFlow
    本文详细介绍了如何在Ubuntu 16.04系统上通过Anaconda环境管理工具安装TensorFlow。首先,需要下载并安装Anaconda,然后配置环境变量以确保系统能够识别Anaconda命令。接着,创建一个特定的Python环境用于安装TensorFlow,并通过指定的镜像源加速安装过程。最后,通过一个简单的线性回归示例验证TensorFlow的安装是否成功。 ... [详细]
  • 本文将详细介绍Nose这一非标准库的Python测试框架,它虽然不是Python官方发行版的一部分,但与unittest框架紧密相关,旨在通过简化测试流程来提升开发效率。 ... [详细]
  • YB02 防水车载GPS追踪器
    YB02防水车载GPS追踪器由Yuebiz科技有限公司设计生产,适用于车辆防盗、车队管理和实时追踪等多种场合。 ... [详细]
  • Python数据类型6 字典
    字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包 ... [详细]
  • JavaScript:简洁与复杂之间的平衡
    本文探讨了在编写JavaScript教程时,如何在保持内容简洁的同时,确保初学者能够理解并应用实际开发中的复杂问题。文章通过具体示例分析了不同层次的JavaScript代码实现。 ... [详细]
  • 本文深入探讨了JavaScript中实现继承的四种常见方法,包括原型链继承、构造函数继承、组合继承和寄生组合继承。对于正在学习或从事Web前端开发的技术人员来说,理解这些继承模式对于提高代码质量和维护性至关重要。 ... [详细]
  • 探讨HTML中的DIV样式难题
    本文深入分析了HTML中常见的DIV样式问题,并提供了有效的解决策略。适合所有对Web前端开发感兴趣的读者。 ... [详细]
  • 利用Java与Tesseract-OCR实现数字识别
    本文深入探讨了如何利用Java语言结合Tesseract-OCR技术来实现图像中的数字识别功能,旨在为开发者提供详细的指导和实践案例。 ... [详细]
  • 强人工智能时代,区块链的角色与前景
    随着强人工智能的崛起,区块链技术在新的技术生态中扮演着怎样的角色?本文探讨了区块链与强人工智能之间的互补关系及其在未来技术发展中的重要性。 ... [详细]
author-avatar
拍友2502883387
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有